package paodekuai

import (
	"math/rand"
	"time"
)

var paodekuaiPais = []string{
	`hei_3`,
	`hei_4`,
	`hei_5`,
	`hei_6`,
	`hei_7`,
	`hei_8`,
	`hei_9`,
	`hei_10`,
	`hei_11`,
	`hei_12`,
	`hei_13`,
	`hong_1`,
	`hong_3`,
	`hong_4`,
	`hong_5`,
	`hong_6`,
	`hong_7`,
	`hong_8`,
	`hong_9`,
	`hong_10`,
	`hong_11`,
	`hong_12`,
	`hong_13`,
	`mei_1`,
	`mei_3`,
	`mei_4`,
	`mei_5`,
	`mei_6`,
	`mei_7`,
	`mei_8`,
	`mei_9`,
	`mei_10`,
	`mei_11`,
	`mei_12`,
	`mei_13`,
	`fang_1`,
	`fang_2`,
	`fang_3`,
	`fang_4`,
	`fang_5`,
	`fang_6`,
	`fang_7`,
	`fang_8`,
	`fang_9`,
	`fang_10`,
	`fang_11`,
	`fang_12`,
	`fang_13`,
}

func RandomGenPai(n int) [][]string {
	r := rand.New(rand.NewSource(time.Now().UnixNano()))
	var pais []string
	for _, p := range paodekuaiPais {
		pais = append(pais, p)
	}
	keyRandomIndexs := r.Perm(len(pais))
	var retval [][]string
	index := 0
	for i := 0; i < n; i++ {
		pai := []string{}
		for j := 0; j < 16; j++ {
			pai = append(pai, pais[keyRandomIndexs[index]])
			index++
		}
		retval = append(retval, pai)
	}
	return retval
}

func PaisMaxVal(pais []int) int {
	var max = pais[0]
	for _, p := range pais[1:] {
		if p > max {
			max = p
		}
	}
	return max
}
